package com.own.component.common.login.base;

import com.own.component.common.login.user.BaseLoginUser;
import com.own.component.common.login.user.BasePermissionUser;

import java.util.List;

/**
 * BaseAuthenticationLoginUser
 *
 * @author chenxueli
 * @date 2023-08-21 11:02:00
 */
public interface BaseAuthenticationLoginUser {

    /**
     * 基本类用户信息
     *
     * @return 基本类用户信息
     */
    BaseLoginUser loginUser();

    /**
     * 权限类用户信息
     *
     * @return 权限类用户信息
     */
    default BasePermissionUser permissionUser() {
        return permissionUser(loginUser());
    }

    /**
     * 权限类用户信息
     *
     * @param loginUser 登录的用户信息
     * @return 权限类用户信息
     */
    BasePermissionUser permissionUser(BaseLoginUser loginUser);

    /**
     * 基本类用户信息
     *
     * @param userId 用户id
     * @return 基本类用户信息
     */
    List<BaseLoginUser> loginUser(Long userId);

    /**
     * 权限类用户信息
     *
     * @param userId 用户id
     * @return 权限类用户信息
     */
    List<BasePermissionUser> permissionUser(Long userId);

}
